package com.lin.cloud.disk.service;

import com.lin.cloud.disk.entity.pojo.Department;
import com.lin.cloud.disk.entity.request.CountTotalSizeRequest;
import com.lin.cloud.disk.entity.request.department.CreateDepartmentRequest;
import com.lin.cloud.disk.entity.request.department.DeleteDepartmentRequest;
import com.lin.cloud.disk.entity.request.department.UpdateDepartmentRequest;
import com.lin.cloud.disk.entity.request.findDepartmentByIdRequest;

import java.util.List;

/**
 * (Department)表服务接口
 *
 * @author ljc
 * @since 2020-12-10 16:45:58
 */
public interface IDepartmentService {


    /**
     * 通过部门ID列表查询部门列表
     * @param departmentIdList
     * @return
     */
    List<Department> selectDepartmentByDepartmentIdList(List<Long> departmentIdList);

    /**
     * 创建公司部门
     * @param request
     * @return
     */
    Long createCompanyDepartment(CreateDepartmentRequest request);

    /**
     * 删除公司部门
     * @param request
     */
    void deleteCompanyDepartment(DeleteDepartmentRequest request);

    /**
     * 修改公司部门
     * @param request
     */
    void updateCompanyDepartment(UpdateDepartmentRequest request);

    /**
     * 通过ID获取部门详情
     * @param request
     * @return
     */
    Department findDepartmentById(findDepartmentByIdRequest request);

    /**
     * 统计部门数量
     * @param request
     * @return
     */
    Integer countDepartmentSize(CountTotalSizeRequest request);
}